#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include <fcntl.h>

#define filename "log.txt"


int main()
{

    fprintf(stdout, "hello normal message\n");
    fprintf(stdout, "hello normal message\n");
    fprintf(stdout, "hello normal message\n");
    fprintf(stdout, "hello normal message\n");
    fprintf(stdout, "hello normal message\n");

    fprintf(stderr, "hello error message\n");
    fprintf(stderr, "hello error message\n");
    fprintf(stderr, "hello error message\n");
    fprintf(stderr, "hello error message\n");
    fprintf(stderr, "hello error message\n");


    // 输入重定向
    //close(0);
    //int fd = open(filename, O_RDONLY|O_CREAT);
    //if (fd < 0)
    //{
    //    perror("open");
    //    return 1;
    //}
    //dup2(fd, 0); 
    //close(fd);
    //char* str[1024];
    //ssize_t s = read(0, str, sizeof(str) - 1);
    //if (s > 0)
    //{
    //    str[s] = '\0';
    //    printf("%s\n", str);
    //}

    return 0;
}


//int main()
//{
//
//    //close(1);
//    // 输出重定向
//    //int fd = open(filename, O_WRONLY|O_CREAT|O_TRUNC, 0666);
//    int fd = open(filename, O_WRONLY|O_CREAT|O_APPEND, 0666);
//    if (fd < 0)
//    {
//        perror("open");
//        return 1;
//    }
//    
//    dup2(fd, 1);
//    close(fd);
//    //printf("fd: %d\n", fd);
//    const char* s = "hello linux\n";
//    int cnt = 5;
//    while (cnt)
//    {
//        write(1, s, strlen(s)); 
//        cnt--;
//    }
//    close(fd);
//
//    return 0;
//}
